An Internet Protocol television (IPTV) system is a system through which television services can be delivered using the Internet protocol suite over a packet-switched network such as the Internet. IPTV systems can incorporation Conditional Access (CA) systems that enable the protection of content by requiring certain criteria to be met before granting access to content distributed via the IPTV system. CA systems can protect content using secret keys to scramble and/or encrypt the content.
An additional service that can be provided by IPTV operators is the delivery of Over-the-Top (OTT) content. The term OTT content can be used to refer to a variety of content sources in different contexts. OTT content can be delivered over a third party network and/or over an unmanaged network such as a cellular network. OTT content can also refer to delivery of content using adaptive bitrate streaming and/or via Hypertext Transfer Protocol (HTTP). CA systems in IPTV systems can generate keys to enable the secure distribution of OTT content. These keys are transmitted to a security client on a playback device attempting to playback an encrypted stream.
In the case of streaming video, OTT keys can be generated by a CA system when requested by an encoder that is encoding source content into one or more video streams. In the case of video on demand (VOD) services, the encoder (or an Encryptor or a Packager) communicates the number of required keys to the CA system. VOD content typically has a finite duration. Therefore, the number of keys utilized to encrypt and secure the content can be determined at the time of the key request. When the content is part of a digital television (DTV) broadcast stream or a live stream, the number of keys required to encrypt the content is typically unknown at the time of the request. When the encoder requests a VOD key, the position (or key number) can be passed to the CA system so that CA system can use this information to determine which key to hand back to the encoder. In the case of DTV or live streaming of content, the position can be denoted by a counter (or a timestamp) which is always incrementing with each key. Since there is no limit, the counter can keep going and keys will keep being generated.